```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>适配器设计模式：连接不同接口的桥梁</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            line-height: 1.6;
        }
        .hero-gradient {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        .first-letter:first-letter {
            font-size: 3.5rem;
            float: left;
            line-height: 1;
            margin-right: 0.75rem;
            color: #4f46e5;
            font-weight: bold;
        }
        .fade-in {
            animation: fadeIn 0.5s ease-in-out;
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        code {
            font-family: 'Courier New', Courier, monospace;
            background-color: #f3f4f6;
            padding: 0.2rem 0.4rem;
            border-radius: 0.25rem;
            color: #e53e3e;
        }
        pre {
            background-color: #2d3748;
            color: #f7fafc;
            padding: 1.5rem;
            border-radius: 0.5rem;
            overflow-x: auto;
            font-size: 0.9rem;
        }
        .scroll-indicator {
            animation: bounce 2s infinite;
        }
        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
            40% {transform: translateY(-15px);}
            60% {transform: translateY(-10px);}
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero-gradient text-white py-20 md:py-32 px-4 md:px-0">
        <div class="container mx-auto max-w-4xl text-center">
            <h1 class="text-4xl md:text-6xl font-bold mb-6 font-serif">适配器设计模式</h1>
            <p class="text-xl md:text-2xl mb-8 font-serif font-light">连接不同接口的桥梁</p>
            <p class="text-lg md:text-xl mb-10 max-w-2xl mx-auto leading-relaxed opacity-90">
                让不兼容的接口协同工作，实现系统的灵活扩展与无缝集成
            </p>
            <div class="scroll-indicator text-3xl text-white opacity-70">
                <i class="fas fa-chevron-down"></i>
            </div>
        </div>
    </section>

    <!-- Main Content -->
    <main class="container mx-auto max-w-6xl px-4 py-12 md:py-16">
        <!-- Introduction -->
        <section class="mb-20 fade-in">
            <div class="bg-white rounded-xl shadow-lg p-8 md:p-10 lg:p-12">
                <p class="text-lg md:text-xl leading-relaxed first-letter">
                    适配器设计模式是一种结构型设计模式，它能够让不兼容的接口协同工作。适配器模式通过将一个类的接口转换成客户端所期望的另一个接口，使得原本由于接口不匹配而无法一起工作的类可以协同工作。
                </p>
            </div>
        </section>

        <!-- Features Section -->
        <section class="mb-20 fade-in">
            <h2 class="text-3xl md:text-4xl font-bold mb-8 text-center font-serif text-gray-800">
                <i class="fas fa-star text-yellow-500 mr-3"></i>核心特点
            </h2>
            
            <div class="grid md:grid-cols-3 gap-8">
                <div class="bg-white rounded-xl shadow-md p-6 transition-all duration-300 card-hover">
                    <div class="text-indigo-600 text-4xl mb-4">
                        <i class="fas fa-cube"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">封装接口转换</h3>
                    <p class="text-gray-600">适配器模式封装了接口的转换过程，使得客户端不需要直接处理接口不兼容的情况。</p>
                </div>
                
                <div class="bg-white rounded-xl shadow-md p-6 transition-all duration-300 card-hover">
                    <div class="text-indigo-600 text-4xl mb-4">
                        <i class="fas fa-recycle"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">复用现有类</h3>
                    <p class="text-gray-600">适配器模式可以让现有的类能够与其他不兼容的类一起工作，避免重写已有代码。</p>
                </div>
                
                <div class="bg-white rounded-xl shadow-md p-6 transition-all duration-300 card-hover">
                    <div class="text-indigo-600 text-4xl mb-4">
                        <i class="fas fa-unlink"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">松耦合</h3>
                    <p class="text-gray-600">适配器模式实现了客户端和现有类之间的解耦，使得它们可以独立演化而不影响彼此。</p>
                </div>
            </div>
        </section>

        <!-- Use Cases -->
        <section class="mb-20 fade-in">
            <h2 class="text-3xl md:text-4xl font-bold mb-8 text-center font-serif text-gray-800">
                <i class="fas fa-lightbulb text-blue-500 mr-3"></i>适用场景
            </h2>
            
            <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
                <div class="bg-indigo-50 rounded-lg p-6 border-l-4 border-indigo-500">
                    <h3 class="text-xl font-bold mb-3 flex items-center">
                        <i class="fas fa-box-open text-indigo-600 mr-2"></i>集成外部库
                    </h3>
                    <p class="text-gray-700">当需要集成一个第三方库或组件时，而它的接口与系统的接口不匹配时，可以使用适配器模式来适配接口。</p>
                </div>
                
                <div class="bg-blue-50 rounded-lg p-6 border-l-4 border-blue-500">
                    <h3 class="text-xl font-bold mb-3 flex items-center">
                        <i class="fas fa-exchange-alt text-blue-600 mr-2"></i>兼容性问题
                    </h3>
                    <p class="text-gray-700">当不同版本的组件或模块之间的接口发生变化时，可以使用适配器模式来兼容旧版本接口。</p>
                </div>
                
                <div class="bg-purple-50 rounded-lg p-6 border-l-4 border-purple-500">
                    <h3 class="text-xl font-bold mb-3 flex items-center">
                        <i class="fas fa-expand text-purple-600 mr-2"></i>系统扩展
                    </h3>
                    <p class="text-gray-700">当需要扩展系统功能，但不希望修改现有代码时，可以通过适配器模式来实现新功能的接入。</p>
                </div>
            </div>
        </section>

        <!-- Framework Applications -->
        <section class="mb-20 fade-in">
            <h2 class="text-3xl md:text-4xl font-bold mb-8 text-center font-serif text-gray-800">
                <i class="fas fa-cogs text-green-500 mr-3"></i>框架中的应用
            </h2>
            
            <div class="bg-white rounded-xl shadow-lg p-8">
                <div class="flex flex-col md:flex-row gap-8">
                    <div class="md:w-1/2">
                        <div class="bg-yellow-50 p-6 rounded-lg mb-6">
                            <h3 class="text-xl font-bold mb-3 text-yellow-800 flex items-center">
                                <i class="fab fa-java text-yellow-600 mr-2"></i>Java的InputStream和Reader类
                            </h3>
                            <p class="text-gray-700">InputStreamReader类就是一个适配器，将字节流转换成字符流，使得不兼容的接口能够一起工作。</p>
                        </div>
                    </div>
                    <div class="md:w-1/2">
                        <div class="bg-green-50 p-6 rounded-lg">
                            <h3 class="text-xl font-bold mb-3 text-green-800 flex items-center">
                                <i class="fas fa-leaf text-green-600 mr-2"></i>Spring框架
                            </h3>
                            <p class="text-gray-700">Spring中的AOP（面向切面编程）使用了适配器模式，通过动态生成代理类来实现对不同切面的适配。</p>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Visualization -->
        <section class="mb-20 fade-in">
            <h2 class="text-3xl md:text-4xl font-bold mb-8 text-center font-serif text-gray-800">
                <i class="fas fa-project-diagram text-purple-500 mr-3"></i>适配器模式原理图
            </h2>
            
            <div class="bg-white rounded-xl shadow-lg p-6">
                <div class="mermaid">
                    classDiagram
                        class Client
                        class Target {
                            <<interface>>
                            +request()
                        }
                        class Adaptee {
                            +specificRequest()
                        }
                        class Adapter {
                            -adaptee: Adaptee
                            +request()
                        }
                        
                        Client --> Target
                        Target <|-- Adapter
                        Adapter --> Adaptee
                        
                        note for Adapter "Adapter.request() {\n  adaptee.specificRequest()\n}"
                </div>
            </div>
        </section>

        <!-- Code Example -->
        <section class="mb-20 fade-in">
            <h2 class="text-3xl md:text-4xl font-bold mb-8 text-center font-serif text-gray-800">
                <i class="fas fa-code text-gray-600 mr-3"></i>实现示例
            </h2>
            
            <div class="bg-white rounded-xl shadow-lg overflow-hidden">
                <div class="bg-gray-800 px-4 py-3 flex items-center">
                    <div class="flex space-x-2">
                        <span class="w-3 h-3 bg-red-500 rounded-full"></span>
                        <span class="w-3 h-3 bg-yellow-500 rounded-full"></span>
                        <span class="w-3 h-3 bg-green-500 rounded-full"></span>
                    </div>
                    <div class="ml-4 text-gray-300 text-sm">
                        充电器适配示例 - Java
                    </div>
                </div>
                <pre><code class="language-java">
// 旧手机充电器
class OldPhoneCharger {
    public void chargeWithRoundPlug() {
        System.out.println("Charging with round plug");
    }
}

// 新手机充电接口
interface NewPhoneCharger {
    void chargeWithUSBTypeC();
}

// 适配器类
class PhoneAdapter implements NewPhoneCharger {
    private OldPhoneCharger oldCharger;

    public PhoneAdapter(OldPhoneCharger oldCharger) {
        this.oldCharger = oldCharger;
    }

    public void chargeWithUSBTypeC() {
        oldCharger.chargeWithRoundPlug();
    }
}

public class AdapterPatternDemo {
    public static void main(String[] args) {
        OldPhoneCharger oldCharger = new OldPhoneCharger();
        NewPhoneCharger adapter = new PhoneAdapter(oldCharger);

        adapter.chargeWithUSBTypeC();
    }
}
                </code></pre>
            </div>
        </section>

        <!-- Summary -->
        <section class="fade-in">
            <div class="bg-indigo-50 rounded-xl p-8 md:p-10 border border-indigo-100">
                <h2 class="text-2xl md:text-3xl font-bold mb-6 text-indigo-800 flex items-center">
                    <i class="fas fa-check-circle text-indigo-600 mr-3"></i>总结
                </h2>
                <p class="text-lg text-gray-700 leading-relaxed">
                    适配器设计模式允许我们在现有的系统中引入新功能，而不影响现有代码的结构。通过适当地使用适配器模式，我们能够实现接口之间的无缝协作，提高系统的可扩展性和灵活性。无论是集成第三方库、解决兼容性问题，还是扩展系统功能，适配器模式都是一个强大而实用的设计工具。
                </p>
            </div>
        </section>
    </main>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-300 py-10 px-4">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-4 md:mb-0">
                    <h3 class="text-xl font-bold text-white mb-2">技术小馆</h3>
                    <p class="text-sm">专业的技术分享平台</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="text-white hover:text-indigo-300 transition-colors duration-300 flex items-center">
                        <i class="fas fa-external-link-alt mr-2"></i>访问我们的语雀空间
                    </a>
                </div>
            </div>
            <div class="border-t border-gray-700 mt-8 pt-8 text-center text-sm">
                <p>© 2023 技术小馆. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script>
        // Initialize Mermaid
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            fontFamily: 'Noto Sans SC, sans-serif',
            themeVariables: {
                primaryColor: '#4f46e5',
                primaryTextColor: '#1f2937',
                primaryBorderColor: '#4f46e5',
                lineColor: '#9ca3af'
            }
        });

        // Add scroll animation
        document.addEventListener('DOMContentLoaded', function() {
            const fadeElements = document.querySelectorAll('.fade-in');
            
            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        entry.target.style.opacity = 1;
                    }
                });
            }, { threshold: 0.1 });
            
            fadeElements.forEach(element => {
                element.style.opacity = 0;
                observer.observe(element);
            });
        });
    </script>
</body>
</html>
```